Переменные и функции
Помимо стандартных twig функций, в шаблонах outofbox.ru присутствуют дополнительные.
Подключение медиа-файлов
Неотъемлемой частью любого шаблона являются медиа-файлы: css, js, изображения и т.д. Вы можете выгружать любые необходимые файлы в нужные каталоги.
Для более удобного подключения файлов существует функция asset_url
.
<link href="{{ asset_url('css/style.css') }}" rel="stylesheet">
Данная функция автоматически построит путь, по которому доступен файл css/style.css
.
То же самое верно и для прочих файлов те мы оформления (изображения, шрифты, js и так далее).
Авторизация
is_user_logged_in()
– эта функция используется для проверки того, авторизован или нет текущий пользователь.
Пример использования:
{% if is_user_logged_in() %}
Вы авторизованы как {{ app.user.username }}
{% else %}
Пожалуйста, авторизуйтесь
{% endif %}
Генерация ссылок
Общий принцип
Для генерации ссылок используется две функции: path и url. Функции идентичны, за исключением того, что вторая функция всегда генерирует полную ссылку (вместе со схемой, хостом и т.д.)
Пример использования:
<a href="{{ path('homepage') }}">Главная</a> <!-- ссылка на "/" -->
<a href="{{ url('homepage') }}">Главная</a> <!-- ссылка на "http://domain.tld/" -->
Первым аргументом идет всегда тип генерируемой ссылки.
Ссылки также поддерживают параметры. Бывают два типа параметров: параметры пути и query параметры. Синтаксис для всех этих видов параметров одинаков:
{{ path('homepage', { 'param1': 'foo', 'param2': 'bar' }) }}
В том случае, если переменные не являются переменными пути, они будут добавлены в ссылку как query параметры. В нашем конкретном случае, у типа ссылки homepage нет никаких параметров пути, поэтому вышеприведенный код сгенерирует нам ссылку:
/?param1=foo¶m2=bar
Макросы OUTOFBOX.RU
Также в комплекте поставляются макросы, которые упрощают работу со ссылками. Для того, чтобы их использовать, надо подключить их в шаблоне
{% import '@resources/Templates/macroses.html.twig' as outofbox %}
Данный блок кода можно вставить в общий файл, от которого наследуются все шаблоны, чтобы макросы были доступны во всех дочерних без явного импорта.
Ссылка на товар
Строит абсолютную или относительную ссылку на товар.
product_url(product, absolute = false, query_params = {})
Аргументы:
Наименование | Обязательное | Значение по-умолчанию | Описание |
---|---|---|---|
product | Да | Нет | Объект товара |
absolute | Нет | false | Строить относительную или абсолютную ссылку |
query_params | Нет | {} | Query параметры |
Примеры использования:
{{ outofbox.product_url(product) }} <!-- /products/product-title/123.html -->
{{ outofbox.product_url(product, true) }} <!-- http://domain.tld/products/product-title/123.html -->
{{ outofbox.product_url(product, false, { 'somevar': 'somevalue' }) }} <!-- /products/product-title/123.html? somevar=somevalue -->
Корзина пользователя
Для доступа к данным корзины можно воспользоваться следующими функциями:
Название | Описание |
---|---|
cart_total_quantity() | Общее количество товаров в корзине |
cart_total_price() | Общая сумма |